package structuralModel.bridge.reductionBridge.dto;

import lombok.Builder;
import org.apache.commons.lang3.StringUtils;
import structuralModel.bridge.reductionBridge.SceneConfigEnum;

import java.util.List;
import java.util.Objects;

@Builder
public class InputDataInfoDto {

    private String key;

    private List<SceneConfigEnum> sceneConfigInfoEnumList;

    private InputDataExtDto inputData;

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public List<SceneConfigEnum> getSceneConfigInfoEnumList() {
        return sceneConfigInfoEnumList;
    }

    public void setSceneConfigInfoEnumList(List<SceneConfigEnum> sceneConfigInfoEnumList) {
        this.sceneConfigInfoEnumList = sceneConfigInfoEnumList;
    }

    public InputDataExtDto getInputData() {
        return inputData;
    }

    public void setInputData(InputDataExtDto inputData) {
        this.inputData = inputData;
    }

    //@Override
    //public boolean equals(Object o) {
    //    if (this == o) {
    //        return true;
    //    }
    //    if (o == null || getClass() != o.getClass()) {
    //        return false;
    //    }
    //    InputDataInfoDto that = (InputDataInfoDto) o;
    //
    //    // 检查所有相关属性是否都为空或空白，如果是，则认为相等
    //    boolean allBlank =
    //            (StringUtils.isBlank(inputData.getInputDataCode()) && StringUtils.isBlank(that.getInputData().getInputDataCode()))
    //                    && (StringUtils.isBlank(inputData.getDataGrade()) && StringUtils.isBlank(that.getInputData().getDataGrade()))
    //                    && (StringUtils.isBlank(inputData.getUnits()) && StringUtils.isBlank(that.getInputData().getUnits()))
    //                    && (StringUtils.isBlank(inputData.getStdUnit()) && StringUtils.isBlank(that.getInputData().getStdUnit()))
    //                    && (StringUtils.isBlank(inputData.getDefaultUnit()) && StringUtils.isBlank(that.getInputData().getDefaultUnit()))
    //                    && (StringUtils.isBlank(inputData.getAggregation()) && StringUtils.isBlank(that.getInputData().getAggregation()));
    //
    //    if (allBlank) {
    //        return true;
    //    }
    //
    //    // 如果不是所有属性都为空，则继续逐个比较
    //    return Objects.equals(inputData.getInputDataCode(), that.getInputData().getInputDataCode())
    //            && Objects.equals(inputData.getDataGrade(), that.getInputData().getDataGrade())
    //            && Objects.equals(inputData.getUnits(), that.getInputData().getUnits())
    //            && Objects.equals(inputData.getStdUnit(), that.getInputData().getStdUnit())
    //            && Objects.equals(inputData.getDefaultUnit(), that.getInputData().getDefaultUnit())
    //            && Objects.equals(inputData.getAggregation(), that.getInputData().getAggregation());
    //}
    //
    //@Override
    //public int hashCode() {
    //
    //    int result = 17; // 初始化一个非零常数，用于开始散列计算
    //    if (StringUtils.isNotBlank(inputData.getInputDataCode())) {
    //        result = 31 * result + inputData.getInputDataCode().hashCode();
    //    }
    //    if (StringUtils.isNotBlank(inputData.getUnits())) {
    //        result = 31 * result + inputData.getUnits().hashCode();
    //    }
    //    if (StringUtils.isNotBlank(inputData.getStdUnit())) {
    //        result = 31 * result + inputData.getStdUnit().hashCode();
    //    }
    //    if (StringUtils.isNotBlank(inputData.getDefaultUnit())) {
    //        result = 31 * result + inputData.getDefaultUnit().hashCode();
    //    }
    //    if (StringUtils.isNotBlank(inputData.getAggregation())) {
    //        result = 31 * result + inputData.getAggregation().hashCode();
    //    }
    //    if (StringUtils.isNotBlank(inputData.getDataGrade())) {
    //        result = 31 * result + inputData.getDataGrade().hashCode();
    //    }
    //    return result;
    //}
}
